package Dao;

import org.springframework.stereotype.Repository;
import pojo.admin;
import pojo.playground;
import pojo.room;
import pojo.stadium;

import java.sql.Date;
import java.util.List;


public interface adminDao {

    /*判断账号密码是否正确
    * @param id 账号
    * @param pwd 密码
    * @ return  如果正确则返回true,如果不正确返回false*/
    public boolean testIdPwd(String id,String pwd);

    /*通过id返回实体类*/
    public admin queryById(String id);


    /* 注册新的管理者
    @param vxId 微信号
    @param name 名字
    @param pwd 密码
    @return  返回影响的行数  -1表示失败
     */
    public int register(String id,String name,String pwd);


    /* 改变场馆的信息
     * @param stadium 改变对象的实体类
     * @ return 成功执行返回影响行数 否则返回-1*/
    public int updateStadium(stadium stadium);





    /* 改变场地的信息
    * @param playground 改变对象的实体类
    * @ return 成功执行返回影响行数 否则返回-1*/
    public int updatePlaygroundState(playground playground);

    /* 根据场馆id查询该场馆下的场地
    * @param stadium_id 要查询的场馆id
    * @ return 返回满足条件的场馆集合*/
    public List<playground> queryPlaygroundListByStadium(Long stadium_id);



    /* 查询场馆信息
    @param vxId 管理者的微信id
    @ return 返回场馆集合
     */
   public List<stadium>  queryStadium(String vxId);


   /*通过id查询场馆信息
   * @param stadiumId 场馆id
   * @return 返回查询实体对象*/
   public stadium queryStadiumById(Long stadiumId);


   /* 查询所有的场馆信息供之后更新所用
   @return 所有的场馆信息列表
    */
   public List<stadium> queryStadiumWithNoArguments();


   /* 添加场馆
   @param stadium 要添加的场馆信息
   @return 返回影响行数 -1表示失败
    */
   int addStadium(stadium stadium);

      /* 添加场地
   @param playground 要添加的场馆信息
   @return 返回影响行数 -1表示失败
    */
   int addPlayground(playground playground);


   /*通过场馆名字查询场馆
   @param stadiumName
   @return 返回具体实体类
    */
   List<stadium> queryStadiumByName(String name);



   /*查询房间信息
   @return 返回所有的房间列表
    */
   public List<room> queryRoom(String id);


   /*根据日期选择房间列表
   @param date
   @return 满足条件的房间列表
    */
   public List<room> queryRoomByDate(String date);



   /*根据房间状态来选择房间订单
   @param roomstate
   @return 返回满足条件的房间列表
    */
   public List<room> queryRoomByRoomState(int roomstate,String id);


   /*根据场馆的名字来选择房间订单
   @param stadiumName 体育馆名字
   @return 返回满足条件的房间列表
    */

   public List<room> queryRoomByStadiumName(String stadiumName);


   /*通过房间id查询房间订单
   @param roomId 房间序号
   @return 返回满足条件的房间列表
    */
   public room queryRoomById(Long roomId);




   /*删除场馆
   @param stadiumId 体育馆id
   @return 返回影响行数 -1表示失败
    */
   public int deleteStadium(Long stadiumId);




  /*删除场地
  @param playgroundId 场地id
  @return 返回影响的行数 -1 表示失败
   */
  public int deletePlayground(Long playgroundId,Long stadiumId);



  /*通过场地Id 查询场地
     * @param playgroundId 场地id
      * @return 返回查询实体类*/
  public playground queryPlaygroundById(Long playgroundId);


  /* 查询指定日期后的房间列表
  @param startDate 开始日期
  @param endDate 结束日期
  @return 返回符合条件的房间列表
   */
  public List<room> queryRoomOrderTap(Date startTime,Date endDate,String Id);

}
